package cn.hinglo.gameclaw.user.dao;

import cn.hinglo.gameclaw.data.dbdao.MyMapper;
import cn.hinglo.gameclaw.user.bean.User;
import cn.hinglo.gameclaw.user.bean.UserInfo;
import cn.hinglo.gameclaw.user.entity.Users;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @createTime: 2017/12/28
 * @author: HingLo
 * @description: 登录数据访问层
 */
@Repository
public interface LoginDao extends MyMapper<User> {
    /**
     * 查询全部的用户信息，通过指定的用户名与密码
     *
     * @param users 用户的用户名与密码对象
     * @return user对象
     */
    @Select("select * from user where username=#{users.username} and password=#{users.password}")
    User loginMethodDao(@Param("users") Users users);

    /**
     * 添加一个账号信息的详细信息
     *
     * @param userInfo 初始化用户的信息
     * @return 返回是否添加成
     */
    @Insert("insert into user_info(user_id,uid,sex,nike_name,gold,header) values(#{u.userId},#{u.uid},#{u.sex},#{u.nikeName},#{u.gold},#{u.header})")
    int addUserInfo(@Param("u") UserInfo userInfo);

    /**
     * 通过Uid来查找
     *
     * @param uid 用户显示的Id
     * @return 返回通过UId查询的用户信息集合
     */
    @Select("select * from user_info where uid=#{uid}")
    List<UserInfo> findUid(String uid);
}
